package com.hss.cls

/**
 * Created by Administrator on 2017/6/7.
 */
class InterfaceTest {
}
/*接口中可以包含 < 抽象方法 的声明>,
 也可以包含   <方法的实现>.
 接口与抽象类的区别在于, 接口<不能存储状态数据>.
  接口可以<有属性>, 但这些属性必须<是抽象的>,
   或者必须提供访问器的自定义实现.*/
interface  MyInterface{

   /* 接口中声明的属性要么是<抽象的>,
   要么提供访问器的<自定义实现>. 接口中声明的
    属性 <不能拥有后端域变量>(backing field),*/
    val prperty:Int//抽象属性

    val propertyWithImplementation:String
    get() = "foo"

    fun  bar()


    fun foo(){

    }
}

class Child :MyInterface{
    override val prperty: Int
        get() = 29 //To change initializer of created properties use File | Settings | File Templates.

    override fun bar() {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    }
}

interface AB {
    fun foo() { print("A") }
    fun bar()
}

interface AC {
    fun foo() { print("B") }
    fun bar() { print("bar") }
}

class CA :AB{
    override fun bar() {
        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    }
}